import pandas as pd
import numpy as np

# ###使用条件表达式过滤数据——————————————————————————————————————————————————
# #（1）基于单个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 过滤出 website 列为 'pandasdataframe.com' 的行
# filtered_df = df[df['website'] == 'pandasdataframe.com']
# print(filtered_df)
#
# #（2)基于多个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 过滤出 age 大于 30 并且 website 为 'pandasdataframe.com' 的行
# filtered_df = df[(df['age'] > 30) & (df['website'] == 'pandasdataframe.com')]
# print(filtered_df)




# ##使用 query 方法过滤——————————————————————————————————————
# #（1）基于单个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.query("website == 'pandasdataframe.com'")
# print(filtered_df)
# #（2）基于多个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 使用 query 方法结合多个条件过滤数据
# filtered_df = df.query("age > 30 and website == 'pandasdataframe.com'")
# print(filtered_df)


####使用布尔索引过滤数据————————————————————————————————
##（1）基于多个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 生成布尔值序列
# condition = df['website'] == 'pandasdataframe.com'
#
# # 使用布尔索引过滤数据
# filtered_df = df[condition]
# print(filtered_df)

##（2）基于多个条件过滤
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 生成多个布尔值序列
# condition1 = df['age'] > 30
# condition2 = df['website'] == 'pandasdataframe.com'
#
# # 结合多个布尔序列过滤数据
# filtered_df = df[condition1 & condition2]
# print(filtered_df)


# ##使用isin 方法过滤————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df[df['website'].isin(['pandasdataframe.com', 'example.com'])]
# print(filtered_df)



###使用filter 方法过滤————————————————————————————————————————————————
# ##（1）使用 filter 方法过滤列 items=
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.filter(items=['name', 'website'])
# print(filtered_df)
#
# ##(2)使用filter 方法过滤行 like=
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.filter(like='3', axis=0)
# print(filtered_df)

#
# ###(3)使用filter 过滤列，使用正则表达式 regex=' '
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 使用 filter 方法过滤列，使用正则表达式
# filtered_df = df.filter(regex='^n', axis=1)
# print(filtered_df)
#
#
#
# ###(4)使用filter 过滤行，使用正则表达式 regex='^1'
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 使用 filter 方法过滤行，使用正则表达式
# filtered_df = df.filter(regex='^1', axis=0)
# print(filtered_df)



# #使用 loc 方法过滤数据——————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.loc[df['website'] == 'pandasdataframe.com']
# print(filtered_df)


# #使用 iloc 方法过滤数据——————————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.iloc[0:2]
# print(filtered_df)



# #使用 at 方法过滤数据————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_data = df.at[0, 'website']
# print(filtered_data)
#
# #使用 iat 方法过滤数据————————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_data = df.iat[0, 2]
# print(filtered_data)




# #使用where 方法过滤数据————————————————————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.where(df['website'] == 'pandasdataframe.com')
# print(filtered_df)






# #使用 mask 方法过滤数据————————————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# filtered_df = df.mask(df['website'] == 'pandasdataframe.com')
# print(filtered_df)




# #使用eval 方法过滤数据 ————————————————————————————————————————————————————————————
# # 创建示例 DataFrame
# data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
#         'age': [25, 30, 35, 40],
#         'website': ['pandasdataframe.com', 'example.com', 'pandasdataframe.com', 'test.com']}
# df = pd.DataFrame(data)
#
# # 使用 eval 方法过滤数据
# filtered_df = df[df.eval("website == 'pandasdataframe.com'")]
# print(filtered_df)

